CAMs (Content Addressable Memories) are computer memory structures designed to facilitate fast searches of their memory contents. The user supplies the CAM with data to look up, and the CAM will search its entire memory contents for the data. If the data exists in the CAM, then the index of the CAM memory location where the word is stored is returned to the user along with a “hit” result. If the data does not exist in the CAM, then a “miss” result is returned and it is written to an available, free entry in the CAM.
Conventional mechanisms such as those explained above suffer from a variety of deficiencies. One such deficiency occurs in applications where a CAM hit/miss determination must be made in one clock cycle. In this scenario, locating a free CAM entry to write upon a miss can complicate the design of the CAM. Because the logic in the CAM is such that all memory entries must be examined, the additional logic needed to locate free entries can make it difficult for the CAM design to operate at high clock frequencies. One type of memory storage device is known as a First-In-First-Out (FIFO) device